﻿//using System.ComponentModel;
//using System.ComponentModel.Composition;
//using System.Threading.Tasks;
//using NthDownload.Contracts.Plugins.Downloads;

//namespace NthDownload.DownloadPlugins.LocalDownload
//{
//    [PartCreationPolicy(CreationPolicy.Shared)]
//    [Export(typeof(IDownloadPlugin))]
//    public class LocalDownloadPlugin : IDownloadPlugin
//    {
//        #region INotifyPropertyChanged

//        public event PropertyChangedEventHandler PropertyChanged;

//        protected void OnPropertyChanged(string propertyName)
//        {
//            if (PropertyChanged != null)
//            {
//                PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
//            }
//        }

//        #endregion INotifyPropertyChanged

//        #region Class Members

//        private bool _isSelected;

//        #endregion Class Members

//        #region Properties

//        public string GUID
//        {
//            get
//            {
//                return "123";
//            }
//        }

//        public string Name
//        {
//            get
//            {
//                return "Local Copy";
//            }
//        }

//        public string Description
//        {
//            get
//            {
//                return "Provides the ability to copy local files";
//            }
//        }

//        public string DisplayName
//        {
//            get
//            {
//                return "Local File";
//            }
//        }

//        public bool IsSelected
//        {
//            get
//            {
//                return _isSelected;
//            }
//            set
//            {
//                _isSelected = value;
//                OnPropertyChanged("IsSelected");
//            }
//        }

//        public bool HasSettings
//        {
//            get
//            {
//                return false;
//            }
//        }

//        #endregion Properties

//        #region Methods

//        public IDownloadFactory CreateDownloadFactory()
//        {
//            return new LocalDownloadFactory(GUID);
//        }

//        public IDownloadUIService CreateDownloadUIService(IDownloadFactory factory)
//        {
//            return new LocalDownloadUIService(factory);
//        }

//        public IDownloadXmlSerializationService CreateDownloadXmlSerializationService()
//        {
//            return new LocalDownloadXmlSerializationService(GUID);
//        }

//        public Task Initialize()
//        {
//            Task t = new Task(() =>
//            {
//            });

//            t.Start();

//            return t;
//        }

//        #endregion Methods
//    }
//}
